#include <iostream>
using namespace std;
int trans(char s){
    if(s>='0'&&s<='9')return s-'0';
    else return s-'a'+10;
}

int translate(string N,int r){
    int sum=0;
    for(int i=N.size()-1,unit=1;i>=0;i--,unit*=r){
        int j=trans(N[i]);
        sum+=j*unit;
    }
    return sum;
}
int main(){
    string N1,N2;
    int tag,r1,r2;
    cin>>N1>>N2>>tag>>r1;
    if(tag==2){
        auto a=N1;
        N1=N2;
        N2=a;
    }
    int m=translate(N1,r1);
    int maxdig=0;
    for (char c:N2)
    {
        int j=trans(c);
        if(j>maxdig)maxdig=j;
    }
    for(r2=maxdig+1;translate(N2,r2)<m;r2++);
    if(translate(N2,r2)==m){
        cout<<r1;
        return 0;
    }else{
        cout<<"Impossible";
        return 0;
    }
}